package com.yyh;
import java.util.Scanner;

/*定义电视类TV，要求包含：
1)成员变量:名称 name（ String 型）；
2)构造方法:空参、满参构造方法；
3)成员方法:void play(String channel ) ,方法内,打印输出 "xx电视正在播放xxx节目"（channel表示电视节目）；
定义接口RedRay，要求 ：
1)定义抽象方法： void controlTV(TV tv)；
2)定义默认方法： void connecting()，方法内,打印输出"外接设备,连接成功, 可以使用红外线"；
c. 定义遥控器类RemoteControl,包含:
1)成员方法: voidcontrolTV(TV tv):方法内输出"遥控器控制电视",然后提示用户键盘录入一个字符串作为电视节目信息,调用tv的play方法,将节目信息作为参数传入；
定义手机类Phone,实现RedRay接口，要求：
1)重写controlTV方法：
 方法内输出"手机开启红外功能,控制电视"；
 提示用户键盘录入电视节目信息并接受；
 调用电视play方法,将节目信息作为参数传入；
定义测试类Test，在main方法实现以下功能：
 创建TV对象；
 创建RemoteControl对象,调用其controlTV的方法；
 创建Phone对象,调用其connecting方法和controlTV方法；*/
public class Test3 {
    public static void main(String[] args) {
        //创建TV对象
        TV tv = new TV("Philips");
        //创建RemoteControl对象,调用其controlTV的方法
        RemoteControl remoteControl = new RemoteControl();
        remoteControl.controlTV(tv);
        //创建Phone对象,调用其connecting方法和controlTV方法
        Phone phone = new Phone();
        phone.connecting();
        phone.controlTV(tv);
    }
}
class TV{
    //成员变量:名称 name（ String 型）；
    private String name;
    //构造方法:空参、满参构造方法；
    public TV() {
    }
    public TV(String name) {
        this.name = name;
    }
    //成员方法:void play(String channel ) ,方法内,打印输出 "xx电视正在播放xxx节目"（channel表示电视节目）；
    public void play(String channel) {
        System.out.println(name + "电视正在播放" + channel + "节目");
    }
}
interface RedRay{
    //定义抽象方法： void controlTV(TV tv)；
    void controlTV(TV tv);
    //定义默认方法： void connecting()，方法内,打印输出"外接设备,连接成功, 可以使用红外线"；
    default void connecting() {
        System.out.println("外接设备,连接成功, 可以使用红外线");
    }
}
class RemoteControl{
    //成员方法: voidcontrolTV(TV tv):方法内输出"遥控器控制电视",然后提示用户键盘录入一个字符串作为电视节目信息,调用tv的play方法,将节目信息作为参数传入；
    public void controlTV(TV tv) {
        System.out.println("遥控器控制电视");
        Scanner sc = new Scanner(System.in);
        String channel = sc.next();
        tv.play(channel);
    }
}
class Phone implements RedRay{
    //重写controlTV方法：
    // 方法内输出"手机开启红外功能,控制电视"；
    // 提示用户键盘录入电视节目信息并接受；
    // 调用电视play方法,将节目信息作为参数传入；
    @Override
    public void controlTV(TV tv) {
        System.out.println("手机开启红外功能,控制电视");
        Scanner sc = new Scanner(System.in);
        String channel = sc.next();
        tv.play(channel);
    }
}

